Call mapping systems and methods using bayesian mean regression (BMR)

ABSTRACT

A method, system and program product, the method comprising: determining a distribution of real agent performance from previous real agent performance data; determining a set of hypothetical agents with respective hypothetical agent performances AP i  ranging from a worst performance to a best performance; calculating for each of the set of hypothetical agents a posterior distribution taking into account actual results of a respective actual agent in multiple skills, using the distribution of real agent performance and the set of hypothetical agents with respective hypothetical agent performances AP i , to obtain a total probability for each hypothetical agent of the set of the hypothetical agents; repeating calculating the posterior distribution steps for multiple of the hypothetical agents to obtain the respective total probabilities for the respective hypothetical agents; determining one hypothetical agent with a better value of total probability as the actual agent&#39;s most probable global performance. This method may also be applied to obtain caller global propensity.

CROSS-REFERENCE TO RELATED PATENT APPLICATIONS

This application claims priority from Provisional U.S. Application61/615,772 filed Mar. 26, 2012, and from Provisional U.S. Application61/615,779 filed Mar. 26, 2012, and from Provisional U.S. Application61/615,788 filed on Mar. 26, 2012, and U.S. application CALL MAPPINGSYSTEMS AND METHODS USING VARIANCE ALGORITHM (VA) AND/OR DISTRIBUTIONCOMPENSATION, inventors S. James Spottiswoode and Zia Chishti, filedMar. 15, 2013, all of which are incorporated herein by reference intheir entirety as if fully set forth herein.

BACKGROUND

The present invention relates generally to the field of routing phonecalls and other telecommunications in a contact center system.

The typical contact center consists of a number of human agents, witheach assigned to a telecommunication device, such as a phone or acomputer for conducting email or Internet chat sessions, that isconnected to a central switch. Using these devices, the agents aregenerally used to provide sales, customer service, or technical supportto the customers or prospective customers of a contact center or acontact center's clients.

Typically, a contact center or client will advertise to its customers,prospective customers, or other third parties a number of differentcontact numbers or addresses for a particular service, such as forbilling questions or for technical support. The customers, prospectivecustomers, or third parties seeking a particular service will then usethis contact information, and the incoming caller will be routed at oneor more routing points to a human agent at a contact center who canprovide the appropriate service. Contact centers that respond to suchincoming contacts are typically referred to as “inbound contactcenters.”

Similarly, a contact center can make outgoing contacts to current orprospective customers or third parties. Such contacts may be made toencourage sales of a product, provide technical support or billinginformation, survey consumer preferences, or to assist in collectingdebts. Contact centers that make such outgoing contacts are referred toas “outbound contact centers.”

In both inbound contact centers and outbound contact centers, theindividuals (such as customers, prospective customers, surveyparticipants, or other third parties) that interact with contact centeragents using a telecommunication device are referred to in thisapplication as a “caller.” The individuals employed by the contactcenter to interact with callers are referred to in this application asan “agent.”

Conventionally, a contact center operation includes a switch system thatconnects callers to agents. In an inbound contact center, these switchesroute incoming callers to a particular agent in a contact center, or, ifmultiple contact centers are deployed, to a particular contact centerfor further routing. In an outbound contact center employing telephonedevices, dialers are typically employed in addition to a switch system.The dialer is used to automatically dial a phone number from a list ofphone numbers, and to determine whether a live caller has been reachedfrom the phone number called (as opposed to obtaining no answer, a busysignal, an error message, or an answering machine). When the dialerobtains a live caller, the switch system routes the caller to aparticular agent in the contact center.

Routing technologies have accordingly been developed to optimize thecaller experience. For example, U.S. Pat. No. 7,236,584 describes atelephone system for equalizing caller waiting times across multipletelephone switches, regardless of the general variations in performancethat may exist among those switches. Contact routing in an inboundcontact center, however, is a process that is generally structured toconnect callers to agents that have been idle for the longest period oftime. In the case of an inbound caller where only one agent may beavailable, that agent is generally selected for the caller withoutfurther analysis. In another example, if there are eight agents at acontact center, and seven are occupied with contacts, the switch willgenerally route the inbound caller to the one agent that is available.If all eight agents are occupied with contacts, the switch willtypically put the contact on hold and then route it to the next agentthat becomes available. More generally, the contact center will set up aqueue of incoming callers and preferentially route the longest-waitingcallers to the agents that become available over time. Such a pattern ofrouting contacts to either the first available agent or thelongest-waiting agent is referred to as “round-robin” contact routing.In round robin contact routing, eventual matches and connections betweena caller and an agent are essentially random.

Some attempts have been made to improve upon these standard yetessentially random processes for connecting a caller to an agent. Forexample, U.S. Pat. No. 7,209,549 describes a telephone routing systemwherein an incoming caller's language preference is collected and usedto route their telephone call to a particular contact center or agentthat can provide service in that language. In this manner, languagepreference is the primary driver of matching and connecting a caller toan agent, although once such a preference has been made, callers arealmost always routed in “round-robin” fashion.

BRIEF SUMMARY OF SOME EMBODIMENTS

In embodiments, a method is provided comprising: determining orobtaining or receiving, by one or more computers, a distribution of realagent performance from previous real agent performance data for arespective skill k in a set of skills; determining, by the one or morecomputers, a set of hypothetical agents with respective hypotheticalagent performances AP_(i) ranging from a worst performance to a bestperformance for the respective skill k; calculating for each of the setof hypothetical agents, by the one or more computers, a posteriordistribution taking into account actual results of a respective actualagent in each of the set of skills, using the distribution of real agentperformance and the set of hypothetical agents with respectivehypothetical agent performances AP_(i), to obtain a total probabilityfor each hypothetical agent of the set of the hypothetical agents;repeating, by the one or more computers, the calculating the posteriordistribution steps for multiple of the hypothetical agents in the set ofhypothetical agents to obtain the respective total probabilities for therespective hypothetical agents; and determining, by the one or morecomputers, one of the hypothetical agents with a better value of totalprobability TP as the actual agent's most probable global performance.

In embodiments, the agent performance is one selected from the group ofsale or no sale, revenue per call, and revenue generating units (RGU)per call, and handle time.

In embodiments, the agent skills k comprise two or more selected fromthe group of sales of product or service A, sales of product or serviceB, and providing service advice for a product C.

In embodiments, the most probable global performance determining stepcomprises selecting one of the hypothetical agents with a best value oftotal probability TP as the actual agent's most probable globalperformance.

In embodiments, the set of hypothetical agents comprises at least 10hypothetical agents. In embodiments, the set of hypothetical agentscomprises at least 50 hypothetical agents. In embodiments, the set ofhypothetical agents comprises at least 100 hypothetical agents.

In embodiments, the real agent performance is binomial and distributionof real agent performance is truncated at least at one end thereof.

In embodiments, the calculating the posterior distribution comprises:calculating for each hypothetical agent, i, in the set of hypotheticalagents, by the one or more computers, for a first skill k and thehypothetical agent performance AP_(i) for the respective hypotheticalagent, i, a probability of the evidence POE_(ik) that the respectivehypothetical agent i would obtain S sales on N calls, that therespective actual agent in that skill k obtained; and calculating, bythe one or more computers, a total probability TP_(i) for thehypothetical agent i, comprising multiplying AP_(i) for the hypotheticalagent by the POE_(ik) for each skill k for the hypothetical agent i.

In embodiments, the method may further comprise: using, by the one ormore computers, demographic data or psychographic data of the agents anddemographic data or psychographic data of the callers in a multi-elementpattern matching algorithm in a pair-wise fashion for a desired outcometo obtain a valuation for each of multiple of agent-caller pairs, andcombining, by the one or more computers, results of the pattern matchingalgorithm and the respective most probable global performances of therespective agents to select one of the agent-caller pairs.

In embodiments, a method is provided, comprising: determining orobtaining or receiving, by one or more computers, a distribution of realcaller propensity from previous real caller propensity data for arespective caller partition in a set of caller partitions; determining,by the one or more computers, a set of hypothetical callers withrespective hypothetical caller propensities CP_(i) ranging from a worstpropensity to a best propensity; calculating for each of the set ofhypothetical callers, by the one or more computers, a posteriordistribution taking into account actual results of a respective actualcaller in multiple of the caller partitions, using the distribution ofreal caller propensity and the set of hypothetical callers withrespective hypothetical caller propensities CP_(i) to obtain a totalprobability for each hypothetical caller of the set of the respectivehypothetical callers; repeating, by the one or more computers, thecalculating the posterior distribution steps for multiple of thehypothetical callers in the set of hypothetical callers to obtain therespective total probabilities for the respective hypothetical callers;and determining, by the one or more computers, one of the hypotheticalcallers with a better value of total probability TP as the actualcallers's most probable global propensity.

In embodiments, the caller propensity is one selected from the group ofproduct or service A or no purchase, purchase of product or service B orno purchase, purchase of product or service C or no purchase, revenuegenerating units (RGU) per call, and handle time.

In embodiments, the partition is based at least in part on one or moreselected from the group of demographic data, area code, zip code,NPANXX, VTN, geographic area, 800 number, and transfer number.

In embodiments, the calculating the posterior distribution comprises:calculating for each hypothetical caller, i, in the set of hypotheticalcallers, by the one or more computers, for a first partition and thehypothetical caller propensity CP_(i) for the respective hypotheticalcaller, i, a probability of the evidence POE_(ik) that the respectivehypothetical caller i would have S sales, that the respective actualcaller in that partition k had; and calculating, by the one or morecomputers, a total probability TP_(i) for the hypothetical caller i,comprising multiplying CP_(i) for the hypothetical caller by thePOE_(ik) for each partition k for the hypothetical caller i.

In embodiments, a system is disclosed comprising: one or more computersconfigured with program code that, when executed, causes performance ofthe following steps: determining or obtaining or receiving, by the oneor more computers, a distribution of real agent performance fromprevious real agent performance data for a respective skill k in a setof skills; determining, by the one or more computers, a set ofhypothetical agents with respective hypothetical agent performancesAP_(i) ranging from a worst performance to a best performance for therespective skill k; calculating for each of the set of hypotheticalagents, by the one or more computers, a posterior distribution takinginto account actual results of a respective actual agent in the set ofskills, using the distribution of real agent performance and the set ofhypothetical agents with respective hypothetical agent performancesAP_(i), to obtain a total probability for each hypothetical agent of theset of the hypothetical agents; repeating, by the one or more computers,the calculating the posterior distribution steps for multiple of thehypothetical agents in the set of hypothetical agents to obtain therespective total probabilities for the respective hypothetical agents;and determining, by the one or more computers, one of the hypotheticalagents with a better value of total probability TP as the actual agent'smost probable global performance.

In embodiments, a system is disclosed, comprising: one or more computersconfigured with program code that, when executed, causes performance ofthe following steps: determining or obtaining or receiving, by the oneor more computers, a distribution of real caller propensity fromprevious real caller propensity data for a respective caller partitionin a set of caller partitions; determining, by the one or morecomputers, a set of hypothetical callers with respective hypotheticalcaller propensities CP_(i) ranging from a worst propensity to a bestpropensity; calculating for each of the set of hypothetical callers, bythe one or more computers, a posterior distribution taking into accountactual results of a respective actual caller in multiple of the callerpartitions, using the distribution of real caller propensity and the setof hypothetical callers with respective hypothetical caller propensitiesCP_(i), to obtain a total probability for each hypothetical caller ofthe set of the respective hypothetical callers; repeating, by the one ormore computers, the calculating the posterior distribution steps formultiple of the hypothetical callers in the set of hypothetical callersto obtain the respective total probabilities for the respectivehypothetical callers; and determining, by the one or more computers, oneof the hypothetical callers with a better value of total probability TPas the actual callers's most probable global propensity.

In embodiments, a program product is provided comprising: anon-transitory computer-readable medium configured withcomputer-readable program code, that when executed, by one or morecomputers, causes the performance of the steps: determining or obtainingor receiving, by the one or more computers, a distribution of real agentperformance from previous real agent performance data for a respectiveskill k in a set of skills; determining, by the one or more computers, aset of hypothetical agents with respective hypothetical agentperformances AP_(i) ranging from a worst performance to a bestperformance for the respective skill k; calculating for each of the setof hypothetical agents, by the one or more computers, a posteriordistribution taking into account actual results of a respective actualagent in each of the set of skills, using the distribution of real agentperformance and the set of hypothetical agents with respectivehypothetical agent performances AP_(i), to obtain a total probabilityfor each hypothetical agent of the set of the hypothetical agents;repeating, by the one or more computers, the calculating the posteriordistribution steps for multiple of the hypothetical agents in the set ofhypothetical agents to obtain the respective total probabilities for therespective hypothetical agents; and determining, by the one or morecomputers, one of the hypothetical agents with a better value of totalprobability TP as the actual agent's most probable global performance.

In embodiments, a program product is provided comprising: anon-transitory computer-readable medium configured withcomputer-readable program code, that when executed, by one or morecomputers, causes the performance of the steps: determining or obtainingor receiving, by one or more computers, a distribution of real callerpropensity from previous real caller propensity data for a respectivecaller partition in a set of caller partitions; determining, by the oneor more computers, a set of hypothetical callers with respectivehypothetical caller propensities CP_(i) ranging from a worst propensityto a best propensity; calculating for each of the set of hypotheticalcallers, by the one or more computers, a posterior distribution takinginto account actual results of a respective actual caller in multiple ofthe caller partitions, using the distribution of real caller propensityand the set of hypothetical callers with respective hypothetical callerpropensities CP_(i), to obtain a total probability for each hypotheticalcaller of the set of the respective hypothetical callers; repeating, bythe one or more computers, the calculating the posterior distributionsteps for multiple of the hypothetical callers in the set ofhypothetical callers to obtain the respective total probabilities forthe respective hypothetical callers; and determining, by the one or morecomputers, one of the hypothetical callers with a better value of totalprobability TP as the actual callers's most probable global propensity.

The examples can be applied broadly to different processes for matchingcallers and agents. For instance, exemplary processes or models mayinclude conventional queue routing, performance based matching (e.g.,ranking a set of agents based on performance and preferentially matchingcallers to the agents based on a performance ranking or score), anadaptive pattern matching algorithm or computer model for matchingcallers to agents (e.g., comparing caller data associated with a callerto agent data associated with a set of agents), affinity data matching,combinations thereof, and so on. The methods may therefore operate tooutput scores or rankings of the callers, agents, and/or caller-agentpairs for a desired optimization of an outcome variable (e.g., foroptimizing cost, revenue, customer satisfaction, and so on). In oneexample, different models may be used for matching callers to agents andcombined in some fashion with the exemplary multiplier processes, e.g.,linearly weighted and combined for different performance outcomevariables (e.g., cost, revenue, customer satisfaction, and so on).

According to another aspect, computer-readable storage media andapparatuses are provided for mapping and routing callers to agentsaccording to the various processes described herein. Many of thetechniques described here may be implemented in hardware, firmware,software, or combinations thereof. In one example, the techniques areimplemented in computer programs executing on programmable computersthat each includes a processor, a storage medium readable by theprocessor (including volatile and nonvolatile memory and/or storageelements), and suitable input and output devices. Program code isapplied to data entered using an input device to perform the functionsdescribed and to generate output information. The output information isapplied to one or more output devices. Moreover, each program ispreferably implemented in a high level procedural or object-orientedprogramming language to communicate with a computer system. However, theprograms can be implemented in assembly or machine language, if desired.In any case, the language may be a compiled or interpreted language.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram reflecting the general setup of a contact center andits operation.

FIG. 2 illustrates an exemplary routing system having a routing enginefor routing callers based on performance and/or pattern matchingalgorithms.

FIG. 3 illustrates an exemplary routing system having a mapping enginefor matching callers to agents based on a probability multiplier processalone or in combination with one or more additional matching processes.

FIGS. 4A and 4B illustrate an exemplary probability matching process andrandom matching process, respectively.

FIGS. 5A and 5B illustrate exemplary probability matching processes formatching a caller to an agent.

FIGS. 6A and 6B illustrate exemplary three-dimensional plots of agentperformance, client propensity, and the probability of a sale forparticular caller-agent pairings.

FIG. 7 illustrates an exemplary probability matching process or computermodel for matching callers to agents based on probabilities of outcomevariables.

FIG. 8 illustrates an exemplary probability matching process or computermodel for matching callers to agents based on probabilities of outcomevariables.

FIG. 9 illustrates an exemplary probability matching process or computermodel for matching callers to agents based on probabilities of outcomevariables.

FIG. 10 illustrates a typical computing system that may be employed toimplement some or all processing functionality in certain embodiments ofthe invention.

FIG. 11 illustrates an exemplary process for determining an actualagent's global performance based at least in part in posteriordistribution calculations.

FIG. 12 illustrates an exemplary process for determining a callersagent's global propensity based at least in part in posteriordistribution calculations.

DETAILED DESCRIPTION

The following description is presented to enable a person of ordinaryskill in the art to make and use the invention, and is provided in thecontext of particular applications and their requirements. Variousmodifications to the embodiments will be readily apparent to thoseskilled in the art, and the generic principles defined herein may beapplied to other embodiments and applications without departing from thespirit and scope of the invention. Moreover, in the followingdescription, numerous details are set forth for the purpose ofexplanation. However, one of ordinary skill in the art will realize thatthe invention might be practiced without the use of these specificdetails. In other instances, well-known structures and devices are shownin block diagram form in order not to obscure the description of theinvention with unnecessary detail. Thus, the present invention is notintended to be limited to the embodiments shown, but is to be accordedthe widest scope consistent with the principles and features disclosedherein.

While the invention is described in terms of particular examples andillustrative figures, those of ordinary skill in the art will recognizethat the invention is not limited to the examples or figures described.Those skilled in the art will recognize that the operations of thevarious embodiments may be implemented using hardware, software,firmware, or combinations thereof: as appropriate. For example, someprocesses can be carried out using processors or other digital circuitryunder the control of software, firmware, or hard-wired logic. (The term“logic” herein refers to fixed hardware, programmable logic and/or anappropriate combination thereof, as would be recognized by one skilledin the art to carry out the recited functions.) Software and firmwarecan be stored on computer-readable storage media. Some other processescan be implemented using analog circuitry, as is well known to one ofordinary skill in the art. Additionally, memory or other storage, aswell as communication components, may be employed in embodiments of theinvention.

According to certain aspects of the present invention, systems. andmethods are provided for matching callers to agents within a callrouting center based on similar rankings or relative probabilities for adesired outcome variable. In one example, an exemplary probabilitymultiplier process include matching the best agents to the best callers,the worst agents to worst callers, and so on, based on the probabilityof a desired outcome variable. For instance, agents may be scored orranked based on performance for an outcome variable such as sales,customer satisfaction, cost, or the like. Additionally, callers can bescored or ranked for an outcome variable such as propensity orstatistical chance to purchase (which may be based on available callerdata, e.g., phone number, area code, zip code, demographic data, type ofphone used, historical data, and so on). Callers and agents can then bematched according to their respective rank or percentile rank; forexample, the highest ranking agent matched with the highest rankingcaller, the second highest ranked agent with the second highest caller,and so on.

The exemplary probability multiplier process takes advantage of theinherent geometric relationship of multiplying the differentprobabilities, for example, a 30% sales rate agent with a 30% buyingcustomer (giving you a total chance of 9%) as opposed to matching a 20%or 10% sales rate agent with that same customer (resulting in a 6% or 3%chance). When used across all agents and callers, the process results ina higher overall predicted chance of a particular outcome variable, suchas sales, than a random matching process.

In one example, in addition to using relative ranks of agents andcallers to match callers to agents, a pattern matching algorithm usingagent and/or caller demographic data may be used. For instance, agentsand callers may be matched based on demographic data via a patternmatching algorithm, such as an adaptive correlation algorithm. Thecaller-agent matches from the probability multiplier algorithm andpattern matching algorithms can be combined, e.g., linearly combinedwith or without weightings, to determine a final match for routing acaller to an agent.

Initially, exemplary call routing systems and methods are described formatching callers to available agents. This description is followed byexemplary systems and methods for ranking or ordering callers and agentsbased on an outcome variable, e.g., sales, customer satisfactions, orthe like, and matching agents to callers based on the relative rankings.For instance, matching the highest ranking agent for a particularoutcome variable with the highest ranking caller for a particularoutcome variable, matching the lowest ranking agent with the lowestranking caller, and so on.

FIG. 1 is a diagram reflecting the general setup of a typical contactcenter operation 100. The network cloud 101 reflects a specific orregional telecommunications network designed to receive incoming callersor to support contacts made to outgoing callers. The network cloud 101can comprise a single contact address, such as a telephone number oremail address, or multiple contact addresses. The central router 102reflects contact routing hardware and software designed to help routecontacts among call centers 103. The central router 102 may not beneeded where there is only a single contact center deployed. Wheremultiple contact centers are deployed, more routers may be needed toroute contacts to another router for a specific contact center 103. Atthe contact center level 103, a contact center router 104 will route acontact to an agent 105 with an individual telephone or othertelecommunications equipment 105. Typically, there are multiple agents105 at a contact center 103.

FIG. 2 illustrates an exemplary contact center routing system 200 (whichmay be included with contact center router 104 of FIG. 1). Broadlyspeaking, routing system 200 is operable to match callers and agentsbased, at least in part and in one example, on a probability multiplierprocess based on agent performance and caller propensity (e.g.,statistical chance or likelihood) for a particular outcome variable.Routing system 200 may further be operable to match callers based onpattern matching algorithms using caller data and/or agent data alone orin combination with the probability multiplier process. Routing system200 may include a communication server 202 and a routing engine 204 forreceiving and matching callers to agents (referred to at times as“mapping” callers to agents).

In one example, and as described in greater detail below, routing engine204 is operable to determine or retrieve performance data for availableagents and caller propensity for an outcome variable from callers onhold. The performance data and caller propensity data may be convertedto percentile ranks for each and used to match callers to agents basedon the closest match of percentile ranks, respectively, therebyresulting in high performing agents matched to callers with a highpropensity to purchase, for example.

Agent data may include agent grades or rankings, agent historical data,agent demographic data, agent psychographic data, and otherbusiness-relevant data about the agent (individually or collectivelyreferred to in this application as “agent data”). Agent and callerdemographic data can comprise any of: gender, race, age, education,accent, income, nationality, ethnicity, area code, zip code, maritalstatus, job status, and credit score. Agent and caller psychographicdata can comprise any of introversion, sociability, desire for financialsuccess, and film and television preferences. It is further noted thatcertain data, such an area code, may provide statistical data regardingprobable income level, education level, ethnicity, religion, and so on,of a caller which may be used by the exemplary process to determine apropensity of caller for a particular outcome variable, for example.

Additionally, in some examples, routing engine 204 may additionallyinclude pattern matching algorithms and/or computer models, which mayadapt over time based on the performance or outcomes of previouscaller-agent matches. The additional pattern matching algorithms may becombined in various fashions with a probability multiplier process todetermine a routing decision. In one example, a pattern matchingalgorithm may include a neural network based adaptive pattern matchingengine as is known in the art; for example, a resilient backpropagation(RProp) algorithm, as described by M. Riedmiller, H. Braun: “A DirectAdaptive Method for Faster backpropagation Learning: The RPROPAlgorithm,” Proc. of the IEEE Intl. Cont'. on Neural Networks 1993,which is incorporated by reference herein in its entirety. Various otherexemplary agent performance and pattern matching algorithms and computermodel systems and processes which may be included with contact routingsystem and/or routing engine 204 are described, for example, in U.S.Ser. No. 12/021,251, filed Jan. 28, 2008, and U.S. patent applicationSer. No. 12/202,091, filed Aug. 29, 2008, both of which are herebyincorporated by reference in their entirety. Of course, it will berecognized that other performance based or pattern matching algorithmsand methods may be used alone or in combination with those describedhere.

Routing system 200 may further include other components such ascollector 206 for collecting caller data of incoming callers, dataregarding caller-agent pairs, outcomes of caller-agent pairs, agent dataof agents, historical performance data of agents, and the like. Further,routing system 200 may include a reporting engine 208 for generatingreports of performance and operation of routing system 200. Variousother servers, components, and functionality are possible for inclusionwith routing system 200. Further, although shown as a single hardwaredevice, it will be appreciated that various components may be locatedremotely from each other (e.g., communication server 202 and routingengine 204 need not be included with a common hardware/server system orincluded at a common location). Additionally, various other componentsand functionality may be included with routing system 200, but have beenomitted here for clarity.

FIG. 3 illustrates further detail of exemplary routing engine 204.Routing engine 204 includes a main mapping engine 304, which may includeone or more mapping engines therein for use alone or in combination withother mapping engines. In some examples, routing engine 204 may routecallers based solely or in part on performance data associated withagents and caller data associated with the propensity or chances of aparticular outcome variable. In other examples, routing engine 204 mayfurther make routing decisions based solely or in part on comparingvarious caller data and agent data, which may include, e.g., performancebased data, demographic data, psychographic data, type of phone/phonenumber, BTN-data, and other business-relevant data. Additionally,affinity databases (not shown) may be used and such information receivedby routing engine 204 and/or mapping engine 304 for making orinfluencing routing decisions. Database 312 may include local or remotedatabases, third party services, and so on (additionally, mapping engine304 may receive agent data from database 314 if applicable for theparticular mapping process).

In one example, relative agent performance may be determined by rankingor scoring a set of agents based on performance for a particular outcomevariable (such as revenue generation, cost, customer satisfaction,combinations thereof, and the like). Further, the relative agentperformance may be converted to a relative percentile ranking.Processing engine 320-1, for example, may determine or receive relativeagent performance data for one or more outcome variables. Additionally,processing engine 320-1 may receive or determine a propensity of acaller for a particular outcome variable (such as propensity topurchase, length of call, to be satisfied, combinations thereof, and thelike). The propensity of a caller may be determined from availablecaller data. The relative performance data of the agents and propensitydata of the callers may then be used to match a caller and an agentbased on corresponding ranking. In some examples, the performance andpropensity data is converted to relative percentile rankings for thecallers and agents, and matching callers and agents based on the closestrespective relative percentiles.

Processing engine 320-2, in one example, includes one or more patternmatching algorithms, which operate to compare available caller data witha caller to agent data associated a set of agents and determine asuitability score of each caller-agent pair. Processing engine 320-2 mayreceive caller data and agent data from various databases (e.g., 312 and314) and output caller-agent pair scores or a ranking of caller-agentpairs, for example. The pattern matching algorithm may include acorrelation algorithm such as a neural network algorithm, geneticalgorithm, or other adaptive algorithm(s).

Additionally, a processing engine may include one or more affinitymatching algorithms, which operate to receive affinity data associatedwith the callers and/or agents. Affinity data and/or affinity matchingalgorithms may be used alone or in combination with other processes ormodels discussed herein.

Routing engine 204 may further include selection logic (not shown) forselecting and/or weighting one or more of the plurality of processingengines 320-1 and 320-2 for mapping a caller to an agent. For example,selection logic may include rules for determining the type and amount ofcaller data that is known or available and selecting an appropriateprocessing engine 320-1,320-2, etc., or combinations thereof. Selectionlogic may be included in whole or in part with routing engine 204,mapping engine 304, or remotely to both.

Further, as indicated in FIG. 3 at 350, call history data (including,e.g., caller-agent pair data and outcomes with respect to cost, revenue,customer satisfaction, and so on) may be used to retrain or modifyprocessing engines 320-1 and 320-2. For instance, the agent performancedata may be updated periodically (e.g., daily) based on historicaloutcomes to re-rank the agents. Further, historical informationregarding callers may be used to update information regarding callerpropensities for particular outcome variables.

In some examples, routing engine 204 or main mapping engine 304 mayfurther include a conventional queue based routing processes, which maystore or access hold or idle times of callers and agents, and operate tomap callers to agents based on a hold time or queue order of the callers(and/or agents). Further, various function or time limits may be appliedto callers on hold to ensure that callers are not held too long awaitingan agent. For instance, if a caller's time limit (whether based on apredetermined value or function related to the caller) is exceeded thecaller can be routed to the next available agent.

Additionally, an interface may be presented to a user allowing foradjustment of various aspects of the exemplary systems and methods, forexample, allowing adjustments of the number of different models,degrees, and types of caller data. Further, an interface may allow forthe adjustment of the particular models used for different degrees ortypes, for example, adjusting an optimization or weighting of aparticular model, changing a model for a particular degree or type ofcaller data, and so on. The interface may include a slider or selectorfor adjusting different factors in real-time or at a predetermined time.Additionally, the interface may allow a user to turn certain methods onand off, and may display an estimated effect of changes. For instance,an interface may display the probable change in one or more of cost,revenue generation, or customer satisfaction by changing aspects of therouting system. Various estimation methods and algorithms for estimatingoutcome variables are described, for example, in co-pending U.S.provisional Patent application Ser. No. 61/084,201, filed on Jul. 28,2008, and which is incorporated herein by reference in its entirety. Inone example, the estimate includes evaluating a past time period of thesame (or similar) set of agents and constructing a distribution ofagent/caller pairs. Using each pair, an expected success rate can becomputed via the performance based matching, pattern matching algorithm,etc., and applied to current information to estimate current performance(e.g., with respect to one or more of sales, cost, customersatisfaction, etc.). Accordingly, taking historical call data and agentinformation the system can compute estimates of changing the balance orweighting of the processing methods. It is noted that a comparable time(e.g., time of day, day of the week etc.) for the historical informationmay be important as performance will likely vary with time.

FIG. 4A schematically illustrates an exemplary probability multiplierprocess for matching callers and agents and FIG. 4B illustrates a randommatching process (e.g., queue based or the like). These illustrativeexamples assume that there are five agents and five callers to bematched. The agents can be ranked based on performance of a desiredoutcome variable. For instance, the agents may be scored and orderedbased on a statistical chance of completing a sale based on historicalsales rate data. Additionally, the callers can be scored and rankedbased on a desired outcome variable, for example, on a propensity orlikelihood to purchase products or services. The callers may be rankedand ordered based on known or available caller data including, forexample, demographic data, zip codes, area codes, type of phone used,and so on, which are used to determine a statistical or historicalchance of the caller making a purchase.

The agents and callers are then matched to each other based on theranking, where the highest ranked agent is matched to the highest rankedcaller, the second highest ranked agent matched to the second highestranked caller, and so on. Matching the best to the best and worst to theworst results in an increase product of the matched pairs compared torandomly matching callers to agents as shown in FIG. 4B. For instance,using illustrative sales rates for agents A1-A5 (e.g., based on pastagent performance) and the chance of callers C1-C5 making a purchase(e.g., based on caller data such as demographic data, caller data, andso on), the product of the matches shown in FIG. 4A is as follows:(0.09*0.21)+(0.07*0.12)+(0.06*0.04)+(0.05*0.03)+(0.02*0.02)0.0316

In contrast, for a random matching, as illustrated in FIG. 4B and usingthe same percentages, the product is as follows:(0.09*0.12)+(0.07*0.02)+(0.06*0.21)+(0.05*0.03)+(0.02*0.04)0.0271

Accordingly, matching the highest ranking agent with the highest rankingcaller and the worst ranking agent with the worst ranking callerincreases the overall product, and thus chances of optimizing thedesired outcome variable (e.g., sales).

FIG. 5A schematically illustrates an exemplary process for matchingcallers on hold to an agent that becomes free. In this example, allagents A1-A5 on duty or all that might become free within a reasonablehold time of callers C1-C5 are scored or ranked as previously described.Additionally, callers C1-C5 are scored or ranked as previouslydescribed. As an agent, e.g., agent A2 becomes free the processdetermines that caller C2 is the same (or similar) rank as agent A2 andcaller C2 is matched thereto. The remaining callers on hold may then bere-ranked for matching when the next agent becomes free. Additionally,as new callers are placed on hold the callers can be reranked in areal-time fashion. The exemplary process operates in a similar fashionfor multiple free agents and a caller becomes free (both for inbound andoutbound call centers).

It will be recognized that in most instances the number of agents andcallers will not be equal. Accordingly, the callers (and/or agents) canbe ranked and converted to relative percentile rankings for the callers;for example, a normalized ranking or setting the highest ranked calleras the 100^(th) percentile and the lowest ranked caller as the 0^(th)percentile. The agents may be similarly converted to relative percentilerankings. As an agent becomes free, the agent may be matched to thecaller having the closest relative percentile rank to the agent'srelative percentile rank. In other examples, as an agent becomes freethe agent can be compared to the ranking of at least a portion ofcallers on hold to compute Z-scores for each agent-caller pair. Thehighest Z-score may correspond to the smallest difference in relativepercentile rankings. Further, as noted herein, the Zscores may be usedto combine the matching with other algorithms such as pattern matchingalgorithms, which may also output a Z-score.

FIG. 5B schematically illustrates exemplary methods for matching callersand agents when an agent becomes free and multiple callers are on hold.In this example, the callers (and in some examples the agents) aregrouped in sub-groups of performance. For instance, a range of callerperformance may be divided into multiple sub-groups and callers bucketedwithin each group. The top 20% of callers by performance might begrouped together as C1 ₁-C1 _(N) as illustrated, followed by the next20%, and so on. As an agent becomes free, e.g., A2, a caller from anappropriate sub-group is matched to the caller, in this example from C2₁-C2 _(N). Within the sub-group the caller may be chosen by a queueorder, best-match, a pattern matching algorithm, or the like. Theappropriate sub-group from which to route a caller may be determinedbased on the agent ranking or score, for example.

In one example, suppose it is desired to optimize a call centerperformance for Outcome variable O. O can include one or more of salesrate, customer satisfaction, first call resolution, or other variables.Suppose further that at some time there are N_(A) agents logged in andN_(c) callers in queue. Suppose that agents have performances ingenerating O ofA _(i) ^(o) i=1, . . . ,N _(A)and callers, partitioned by some property P, have a propensity to O ofC _(i) ^(o) i=1, . . . ,N _(C)

For example, in the case where O is sales rate and P is caller areacode, A^(O) is each agent's sales rate and C^(O) is the sales rate forcallers in a particular area code. Calculating the percentile rankedagent performances (with respect to the set of logged in agents) and thepercentile ranked caller propensities (with respect to the set ofcallers in queue at some instant of time) as follows:A _(Pi) ^(O) =pr(A _(i) ^(O) ,A ^(O)) (i=1, . . . ,N _(A))C _(Pi) ^(O) =pr(C _(i) ^(O) ,C ^(O)) (i=1, . . . ,N _(C))where pr(a, B) is the percentile rank function which returns the rank ofvalue a with respect to the set of values B scaled into the range[0,100].

Suppose that all the agents are on calls when the k'th agent becomesavailable. Then to determine which caller in the queue they should beconnected to, compute the difference between the percentile ranks of thenewly free k'th agent and those of the callers in queue:D _(j) =A _(Pk) ^(O) −C _(Pj) ^(O) (j=1, . . . ,N _(C))

The value of j indexing the minimum element of the set {D_(J)} gives themember of the queue to connect to the k'th agent. A Z-score can also bederived from the D_(j). This has the advantages that the highest valueagent-caller pairing is the best fit of the set and that the output fromthis algorithm can be combined with Z-score outputs from otheralgorithms since they have the same scale.Z _(j)=(T _(j)−μ)/σwhere μ and σ and the mean and standard deviation of T which is givenby:T _(j)=Min(D _(j))−D _(j)

It will be recognized by those of skill in the art that the aboveexample and algorithm described for the case of two variables is notrestricted to the case of two variables, but can be extended in anobvious way to the case of more than two variables which aremonotonically related to the desired outcome. Furthermore the increasein call center performance can be shown to increase with more variables,as will be understood and contemplated by those of ordinary skill in theart.

FIG. 6A illustrates an exemplary three-dimensional plot of agentperformance versus caller propensity along the x-axis and y-axis and theprobability of a sale along the z-axis. In this example, agentperformance and caller propensity are defined as linear functions of xand y. For instance, without loss of generality, xε[0,1] and yε[0,1],such that the agent propensity is:a=ca+maxwhere “ca” and “ma” represent the intercept and slope for the agentperformance linear function (note that in certain instances herein,multiple letters represent a single variable e.g., “ca” and “ma” areeach single variables, and are offset by other letters to indicate amultiplication operator). Similarly for the caller propensity:c=cc+mcywhere “cc” and “mc” represent the intercept and slope for the callerpropensity linear function. The multiplicative model probability of salep of the product of a and c is:p=ac

The average height d of a surface of the probability of a sale, which isgraphically illustrated in FIG. 6A as surface 600, can be computed asfollows:

$d = {{\int_{0}^{1}{\int_{0}^{1}{p{\mathbb{d}x}\ {\mathbb{d}y}}}} = {\frac{1}{4}\left( {{2\;{ca}} + {ma}} \right)\left( {{2\;{cc}} + {mc}} \right)}}$

Determining the average height n of the diagonal of the surface height“pdiag” (a single variable), which corresponds to multiplying similarpercentile ranking agents against callers is as follows:

pdiag = (ca + ma λ)(cc + mc λ);$n = {{\int_{0}^{1}{{pdiag}\ {\mathbb{d}\lambda}}} = {{{ca}\mspace{14mu}{cc}} + \frac{{ca}\mspace{14mu}{mc}}{2} + \frac{{cc}\mspace{14mu}{ma}}{2} + \frac{{ma}\mspace{14mu}{mc}}{3}}}$where λ parametrises the diagonal function so one can integrate down theline.

The boost b, or the potential increase in performance or sales rateaccording to the probability matching by corresponding rates, asillustrated by the diagonal shaded band 602 on surface 600, can becomputed as follows:

$b = {{{n/d} - 1} = {\frac{4\left( {{{ca}\mspace{14mu}{cc}} + \frac{{ca}\mspace{14mu}{mc}}{2} + \frac{{cc}\mspace{14mu}{ma}}{2} + \frac{{ma}\mspace{14mu}{mc}}{3}} \right)}{\left( {{2\;{ca}} + {ma}} \right)\left( {{2\;{cc}} + {mc}} \right)} - 1}}$where the theoretical maximum boost of matching according toprobability, for this illustrative example, is ⅓. Accordingly, matchingcallers to agents on or near diagonal shaded band 602 increases theprobability of sales.

FIG. 6B illustrates an exemplary analysis and plot for normaldistribution of callers and agents for agent performance and callerpropensity (as opposed to a uniform distribution of performance).Assuming the same definitions of agent performance and callerpropensity, a two dimensional Gaussian function can be used to representthe distribution of call frequencies across the agents' performance andcallers' propensities:

${g\; 2\;{d\left( {x,y,{x\; 0},{y\; 0},\sigma} \right)}} = {\mathbb{e}}^{\frac{{- {({x - {x\; 0}})}^{2}} - {({y - {y\; 0}})}^{2}}{2\sigma^{2}}}$

The sales rate can then be represented by a function of a and c, where Aand σ give the amplitude and standard deviation of the Gaussiancomponent respectively. Assuming that the Gaussian is centered at {0.5,0.5}, the probability can be written as:

$p = {{{ac}\left( {1 + {{Ag}\; 2\;{d\left( {x,y,\frac{1}{2},\frac{1}{2},\sigma} \right)}}} \right)} = {\left( {{ca} + \max} \right)\left( {{cc} + {mcy}} \right)\left( {A\;{\mathbb{e}}^{\frac{{- {({x - \frac{1}{2}})}^{2}} - {({y - \frac{1}{2}})}^{2}}{2\sigma^{2}} + 1}} \right)}}$

The diagonal sales rate, d, can then be determined directly from thesales rate as:

${d\left( {x,{ca},{ma},{cc},{mc},\sigma,x} \right)} = {\left( {{A\;{\mathbb{e}}} -^{\frac{{({x - \frac{1}{2}})}^{2}}{\sigma^{2}}}{+ 1}} \right)\left( {{ca} + \max} \right)\left( {{cc} + {mcx}} \right)}$

Integrating this with respect to x over [0,1] gives the sales rate forcall agent pairs occurring on the diagonal giving:

$\frac{1}{12}{{\mathbb{e}}^{- \frac{1}{4\sigma^{2}}}\left( {{{\mathbb{e}}^{\frac{1}{4\sigma^{2}}}\left( {{2\sqrt{\pi}A\;\sigma\;{{erf}\left( \frac{1}{2\sigma} \right)}\left( {{\left( {{2\;{ca}} + {ma}} \right)\left( {{2\;{cc}} + {mc}} \right)} + {2\;{ma}\mspace{14mu}{mc}\;\sigma^{2}}} \right)} + {6\;{{ca}\left( {{2{cc}} + {mc}} \right)}} + {6\;{cc}\mspace{11mu}{ma}} + {4\;{ma}\mspace{14mu}{mc}}} \right)} - {6\; A\;{ma}\mspace{14mu}{mc}\;\sigma^{2}}} \right)}$

The sales rate for random client agent pairings can be computed as:totalsalesrate[ca _(—) ,ma _(—) ,cc _(—) ,mc_,σ_(—) ,A_]=∫₀∫₀⁻salesrate[x,y,ca,ma,cc,mc,σ,A]dxdywhich expands to:

$\frac{1}{4}\left( {{2\;{ca}} + {ma}} \right)\left( {{2\;{cc}} + {mc}} \right)\left( {{2\pi\; A\;\sigma^{2}{{erf}\left( \frac{1}{2\sqrt{2}\sigma} \right)}^{2}} + 1} \right)$and the boost of the algorithm can be computed as follows:normalboost[ca _(—) ,ma _(—) ,cc _(—) ,mc_,σ_(—),A_]=diagintegral[ca,ma,cc,mc,σ,A]/totalsalesrate[ca,ma,cc,mc,σ,A]−1which results in a boost in sales of:

$\frac{\mspace{56mu}{{\mathbb{e}}^{- \frac{1}{4\sigma^{2}}}\left( {{{\mathbb{e}}^{\frac{1}{4\sigma^{2}}}\left( {{3\sqrt{\pi}A\;\sigma\;{{erf}\left( \frac{1}{2\sigma} \right)}\left( {{\left( {{2\;{ca}} + \mspace{101mu}{ma}} \right)\left( {{2\;{cc}} + {mc}} \right)} + {2\;{ma}\mspace{14mu}{mc}\;\sigma^{2}}} \right)} + {6\;{{ca}\left( {{2{cc}} + {mc}} \right)}} + {6\;{cc}\mspace{14mu}{ma}} + {4\;{ma}\mspace{14mu}{mc}}} \right)} - {6\; A\;{ma}\mspace{14mu}{mc}\;\sigma^{2}}} \right)}}{3\left( {{2\;{ca}} + {ma}} \right)\left( {{2\;{cc}} + {mc}} \right)\left( {{2\pi\; A\;\sigma^{2}{{erf}\left( \frac{1}{2\sqrt{2}\sigma} \right)}^{2}} + 1} \right)} - 1$

Accordingly, and similar to the normal distribution of FIG. 6A, matchingcallers to agents on or near diagonal shaded band 602 increases theprobability of sales. Of course, it will be understood that theexemplary functions, assumptions, and distributions of callerperformance and agent propensity are illustrative, and will vary basedon, e.g., historical data, feedback, and the like. Further, additionalconsiderations and variables may be incorporated into the generalprocesses. Note also that while referring to Sales as the variable tooptimize in the above example, the same procedure can be applied toother variables or combinations thereof which are to be optimized suchas call handle time (e.g. cost), or first call resolution, or manyothers.

To the extent that there is a discrepancy in any of the foregoingequations as compared to application Ser. No. 12/490,949, the equationsof application Ser. No. 12/490,949 are the correct equations and takeprecedence. FIG. 7 illustrates an exemplary process for matching callersto agents within a call routing center. In this example, agents areranked based on a performance characteristic associated with an outcomevariable such as sales or customer satisfaction at 702. In some examplesagent performance may be determined for each agent from historical dataover a period of time. In other examples, the method may merely retrieveor receive agent performance data or agent ranking for the agents.

In one example, agents are graded on an optimal interaction, such asincreasing revenue, decreasing costs, or increasing customersatisfaction. Grading can be accomplished by collating the performanceof a contact center agent over a period of time on their ability toachieve an optimal interaction, such as a period of at least 10 days.However, the period of time can be as short as the immediately priorcontact to a period extending as long as the agent's first interactionwith a caller. Moreover, the method of grading agents can be as simpleas ranking each agent on a scale of 1 to N for a particular optimalinteraction, with N being the total number of agents. The method ofgrading can also comprise determining the average contact handle time ofeach agent to grade the agents on cost, determining the total salesrevenue or number of sales generated by each agent to grade the agentson sales, or conducting customer surveys at the end of contacts withcallers to grade the agents on customer satisfaction. The foregoing,however, are only examples of how agents may be graded; many othermethods may be used.

Callers are ranked or scored based on an outcome variable based oncaller data at 704. Callers may be ranked or scored based on a predictedchance of a particular outcome based on known or available caller data.The amount and type of caller data may vary for each caller but can beused to determine a statistical chance for a particular outcome based onhistorical outcomes. For instance, the only data known for a callermight be an area code, which is associated with a particular propensityto purchase based on past interactions with callers from the particulararea code. In some examples, there may be no data associated with thecaller, in which case an average propensity or statistical chance forthe particular outcome when no data is known may be used.

Callers and agents are then matched based on their respective rankingsat 706. For example, matching the better agents to the better callersand so on as described. Additionally, to account for an uneven number ofcallers and agents either or both rankings can be adjusted or normalizedand the callers and agents routed based on a closest match. Forinstance, the rank of an agent may be divided by the number of agents,and similarly for the callers, and the callers matched to agents basedon a closest match (or within a certain range). The process may thenroute, or cause the routing, of the caller to the agent at 708. In otherexamples, the process may pass the match on to other apparatuses orprocesses that may use the match in other processes or use to weightwith other routing processes.

FIG. 8 illustrates another exemplary process for matching callers toagents within a call routing center. In this example, agents are rankedbased on a performance characteristic associated with an outcomevariable such as sales or customer satisfaction and converted to arelative percentile ranking at 702. For example, the raw performancevalues of the agents can be converted into a relative percentileranking; for example, a 9% sales rate might be converted to an 85%performance ranking. In other examples, the raw performance values canbe converted to a standardized score or Z-score.

Callers are ranked or scored based on an outcome variable based oncaller data and converted to a relative percentile ranking at 804.Similar to that of the agents, raw predicted values for the callers canbe converted into a percentile ranking; for example, a 20% propensity orlikelihood to purchase might be converted to a 92% percentile rankingamongst callers. In other examples, the raw values can be converted to astandardized score or Z-score.

Callers and agents are then matched based on their respective relativepercentile rankings at 806. For example, the relative percentile rankingof a caller can be compared to relative percentile ranking of agents andthe caller matched to the closest agent available. In examples where anagent becomes free and multiple callers are on hold the agent may bematched to the closest matching caller. In other examples, a caller maybe held for a predetermined time for the best matching agent to becomefree and then matched and routed to the closest matching agent.

It will be recognized that various other fashions of ranking callers andagents, and matching callers to agents based on their respectiverankings, are contemplated. For example, generally speaking, theexemplary processes result in higher ranking callers being routed tohigher ranking agents and lower ranking callers being routed to lowerranking agents.

FIG. 9 illustrates another exemplary process for matching callers toagents within a call routing center based on both a probabilitymultiplier process and a pattern matching algorithm. The processincludes determining relative agent performance of a set of agents foran outcome variable at 902 and determining relative caller propensity ofa set of callers for the outcome variable at 904. The relative agentperformance and relative caller propensity may further be normalized orconverted to relative percentile rankings at 906.

A portion or all of available agent data and caller data may be passedthrough a pattern matching algorithm at 908. In one example, thematching algorithm includes an adaptive pattern matching algorithm suchas a neural network algorithm that is trained on previous caller-agentpairing outcomes.

The matching algorithm may include comparing demographic data associatedwith the caller and/or agent for each caller-agent pair and computing asuitability score or ranking of caller-agent pairs for a desired outcomevariable (or weighting of outcome variables). Further, a Z-score can bedetermined for each caller-agent pair and outcome variable(s); forinstance, co-pending U.S. patent application Ser. No. 12/202,091, filedAug. 29, 2009, describes exemplary processes for computing Z-scores forcaller-agent pairs and is incorporated by reference herein in itsentirety.

Exemplary pattern matching algorithms and computer models can include acorrelation algorithm, such as a neural network algorithm or a geneticalgorithm. In one example, a resilient backpropagation (RProp) algorithmmay be used, as described by M. Riedmiller, H. Braun: “A Direct AdaptiveMethod for Faster backpropagation Learning: The RPROP Algorithm,” Proc.of the IEEE Intl. Conf. on Neural Networks 1993, which is incorporatedby reference herein in its entirety. To generally train or otherwiserefine the algorithm, actual contact results (as measured for an optimalinteraction) are compared against the actual agent and caller data foreach contact that occurred. The pattern matching algorithm can thenlearn, or improve its learning of, how matching certain callers withcertain agents will change the chance of an optimal interaction. In thismanner, the pattern matching algorithm can then be used to predict thechance of an optimal interaction in the context of matching a callerwith a particular set of caller data, with an agent of a particular setof agent data. Preferably, the pattern matching algorithm isperiodically refined as more actual data on caller interactions becomesavailable to it, such as periodically training the algorithm every nightafter a contact center has finished operating for the day.

The pattern matching algorithm can be used to create a computer modelreflecting the predicted chances of an optimal interaction for eachagent and caller matching. For example, the computer model may includethe predicted chances for a set of optimal interactions for every agentthat is logged in to the contact center as matched against everyavailable caller. Alternatively, the computer model can comprise subsetsof these, or sets containing the aforementioned sets. For example,instead of matching every agent logged into the contact center withevery available caller, exemplary methods and systems can match everyavailable agent with every available caller, or even a narrower subsetof agents or callers. The computer model can also be further refined tocomprise a suitability score for each matching of an agent and a caller.

In other examples, exemplary models or methods may utilize affinity dataassociated with callers and/or agents. For example, affinity data mayrelate to an individual caller's contact outcomes (referred to in thisapplication as “caller affinity data”), independent of theirdemographic, psychographic, or other business-relevant information. Suchcaller affinity data can include the caller's purchase history, contacttime history, or customer satisfaction history. These histories can begeneral, such as the caller's general history for purchasing products,average contact time with an agent, or average customer satisfactionratings. These histories can also be agent specific, such as thecaller's purchase, contact time, or customer satisfaction history whenconnected to a particular agent.

As an example, a certain caller may be identified by their calleraffinity data as one highly likely to make a purchase, because in thelast several instances in which the caller was contacted, the callerelected to purchase a product or service. This purchase history can thenbe used to appropriately refine matches such that the caller ispreferentially matched with an agent deemed suitable for the caller toincrease the chances of an optimal interaction. Using this embodiment, acontact center could preferentially match the caller with an agent whodoes not have a high grade for generating revenue or who would nototherwise be an acceptable match, because the chance of a sale is stilllikely given the caller's past purchase behavior. This strategy formatching would leave available other agents who could have otherwisebeen occupied with a contact interaction with the caller. Alternatively,the contact center may instead seek to guarantee that the caller ismatched with an agent with a high grade for generating revenue;irrespective of what the matches generated using caller data and agentdemographic or psychographic data may indicate.

In one example, affinity data and an affinity database developed by thedescribed examples may be one in which a caller's contact outcomes aretracked across the various agent data. Such an analysis might indicate,for example, that the caller is most likely to be satisfied with acontact if they are matched to an agent of similar gender, race, age, oreven with a specific agent. Using this example, the method couldpreferentially match a caller with a specific agent or type of agentthat is known from the caller affinity data to have generated anacceptable optimal interaction.

Affinity databases can provide particularly actionable information abouta caller when commercial, client, or publicly-available database sourcesmay lack information about the caller. This database development canalso be used to further enhance contact routing and agent-to-callermatching even in the event that there is available data on the caller,as it may drive the conclusion that the individual caller's contactoutcomes may vary from what the commercial databases might imply. As anexample, if an exemplary method was to rely solely on commercialdatabases in order to match a caller and agent, it may predict that thecaller would be best matched to an agent of the same gender to achieveoptimal customer satisfaction. However, by including affinity databaseinformation developed from prior interactions with the caller, anexemplary method might more accurately predict that the caller would bebest matched to an agent of the opposite gender to achieve optimalcustomer satisfaction.

Callers can then be matched to agents at 910 based on a comparison ofrelative rankings determined in 906 and the pattern matching algorithmat 908. For instance, outcomes of both processes may be combined, e.g.,via a linear or non-linear combination, to determine the best matchingcaller-agent pair.

The selection or mapping of a caller to an agent may then be passed to arouting engine or router for causing the caller to be routed to theagent at 912. The routing engine or router may be local or remote to asystem that maps the caller to the agent. It is noted that additionalactions may be performed, the described actions do not need to occur inthe order in which they are stated, and some acts may be performed inparallel.

Exemplary call mapping and routing systems and methods are described,for example, in U.S. patent application Ser. No. 12/267,471, entitled“Routing Callers to Agents Based on Time Effect Data,” filed on Nov. 7,2008; Ser. No. 12/490,949, entitled “Probability Multiplier Process forCall Center Routing,” filed on Jun. 24, 2009; and Ser. No. 12/266,418,entitled, “Pooling Callers for Matching to Agents Based on PatternMatching Algorithms,” filed on Nov. 6, 2008, all of which areincorporated herein by reference.

Bayesian Mean Regression:

Systems and methods are provided herein that can be used to improve oroptimize the mapping and routing of callers to agents in a contactcenter, where the mapping and routing of callers may use performancebased routing techniques, or any matching algorithm which uses agentperformance as an independent variable. In one aspect of the presentinvention, systems and methods are used with Bayesian Mean Regression(BMR) techniques to measure and/or estimate agent performance. See thefollowing texts for Bayesian Mean Regression: A FIRST COURSE IN BAYESIANSTATISTICAL METHODS, Sprinter texts in Statistics, by Peter D. Hoff,Nov. 19, 2010; INTRODUCTION TO BAYESIAN STATISTICS, 2^(ND) Edition, byWilliam M. Bolstad, Aug. 15, 2007; BAYESIAN STATISTICS: AN INTRODUCTION,by Peter M. lee, Sep. 4, 2012.

The example and description below is generally described in terms ofagent performance (AP), however, an analogous problem exists forestimating caller propensities, for instance to purchase variousdifferent products and services, and the same methodology applies.Accordingly, to avoid repeating terms, examples will be expressed interms of agent performances (AP) with it being understood that thiscould refer to caller propensity (CP) equally.

An exemplary call mapping and routing system can utilize three differentmathematical types of target data. Binomial, for instance conversionrate (CR) that is sale/no sale, multinomial, e.g., a number of RGU'ssold per call and continuous, e.g., revenue generating units (RGU) percall, and handle time. All the techniques described here apply to all 3kinds of data though they need differences in the mathematicaltechniques used, particularly in the BMR case, as will be recognized bythose of ordinary skill in the art. Again, to avoid cluttering theargument with repetition, term CR is used throughout but this should beunderstood to be a stand in for binomial, multinomial, or continuousdata.

Typically a call routing center wishes to arrive at the most accuratemeasurements of agent performances (AP) that are possible given theavailable data. When one has large amounts of call data in a singleskill the calculation is simple (e.g., CR=# sales/# calls), but problemsmay arise when there is relatively little data and when agents handlemultiple “skills,” each of which may have differing CR's. With littledata it may be more accurate to take an AP value that is a weightedmixture of the raw AP and the mean AP. In the limit of no data one wouldthen just take the mean. Conversely, with lots of data one wouldcalculate AP from the real agent's data and ignore the mean. But thequestion arises as to how one handles the regressing to the mean andwhat is the mathematically optimal method of handling the regression tothe mean. As described below, BMR is an example of handling theregression to the mean.

Bayesian Analysis in one example, may comprise a method that is anadaption of the Bayesian statistical method. The essential idea ofBayesian analysis is to combine previous knowledge (“the prior”) withcurrent evidence or data. In one example, a set of hypothetical agentswhich cover the range of possibilities from very high to very lowperformance is used. The “prior” is the probability of being an agent ofa certain performance—a low probability of being very bad or very good,a higher probability to be average. The example then examines thelikelihood that each of our hypothetical agents would have performed asan actual agent did. Multiplying the “prior” probability by theprobability of the evidence for each hypothetical agent one can find thehypothetical agent with the highest product of prior and evidentialprobabilities. The actual agent is most likely to be this hypotheticalagent with the highest product.

An exemplary algorithm may be carried out as followed:

-   -   1. Estimate the distribution of global (i.e. across skills)        AP's. There may be some constraint; for example in embodiments,        a distribution that may conform to CR, 0<=CR<=1, e.g. a        truncated normal distribution, to incorporate this prior        knowledge. Moments of the distribution may be estimated from        previous AP data or other sources. An example distribution might        be a bell curve with the apex at 0.1, with the distribution        curve truncated at 0 and at 1. Such an example distribution        curve might reflect that most agents have sales of 10 out of 100        calls, e.g., an apex of the distribution at 0.1.    -   2. Construct a set of a large number of hypothetical agents,        with performances spanning the possible range of agent        performance. In practice, one may generate a large number, for        example, 5001, of hypothetical agents with performances ranging        from the worst possible performance (possibly zero) to the        greatest possible performance 100, e.g., a sale on every call.        In embodiments, the performances of the hypothetical agents may        be evenly spaced, e.g., 0, 0.02, 0.04, . . . , 99.96,        99.98, 100. In other embodiments, the performances may not be        evenly spaced. For each hypothetical agent, for example the i'th        agent, one knows two quantities: the probability of being such        an agent, as determined from the distribution of global AP's of        step one above, e.g., PA_(i), and the performance of that        hypothetical agent, for example F_(i), obtained from the evenly        spaced performances of the hypothetical agents.    -   3. For each real agent with real performance data for a given        skill k, e.g., S sales on N calls, that an actual agent in that        skill k obtained, do the following:    -   a. For each hypothetical agent and within each skill, calculate        the probability of the evidence, e.g., the likelihood of the        observed result, from the real agent's data. That is for        hypothetical agent i, given her performance of F_(i), what is        the probability that such a hypothetical agent would get the S        sales on N calls that the actual agent did in that given skill.        Call this the Probability Of the Evidence (the Likelihood of the        Observed Result for that Agent) POE_(i,k), being the Probability        of the Evidence in the k'th skill for the i'th hypothetical        agent. The method is performed and the system loops through each        of the skills, s, e.g., selling washing machines, selling        dryers, selling vacuum cleaners, etc.    -   b. Calculate a total probability TP_(i) for hypothetical agent        i, being the (prior) probability of being that hypothetical        agent x the probabilities of the evidences in each skill, that        is TP_(i)=PA_(i)×POE_(i,1)×POE_(i,2)×, . . . , ×POE_(i,s) where        there are s skills.

c. Repeat 3a & 3b for all hypothetical agents, which span the range ofpossible performances as set up in step 2 above. One of these will havethe greatest value of TP and that hypothetical agent's performance canbe looked up in the array generated in step

In embodiments, this is the real agent's most probable true globalperformance.

This method provides a manner in which to combine the available data oneach agent to estimate AP_(i) and in fact, may be the theoreticallyoptimal way of combining all the data available on each agent toestimate AP.

Referring to FIG. 11, embodiments of a method process are illustrated tocalculate an actual agent's most probable global performance. Inembodiments, the method comprises an operation represented by block 1100of determining or obtaining or receiving, by one or more computers, adistribution of real agent performance from previous real agentperformance data for a respective skill k in a set of skills. Inembodiments, the agent performance is one selected from the group ofsale or no sale, revenue per call, revenue generating units (RGU) percall, and handle time. In embodiments, the real agent performance isbinomial and distribution of real agent performance is truncated atleast at one end thereof.

Block 1110 represents an operation of determining, by the one or morecomputers, a set of hypothetical agents with respective hypotheticalagent performances AP_(i) ranging from a worst performance to a bestperformance for the respective skill k. In embodiments, the set ofhypothetical agents comprises at least 10 hypothetical agents. Inembodiments, the set of hypothetical agents comprises at least 50hypothetical agents. In embodiments, the set of hypothetical agentscomprises at least 100 hypothetical agents.

Block 1120 represents an operation of calculating for each of the set ofhypothetical agents, by the one or more computers, a posteriordistribution taking into account actual results of a respective actualagent in each of the set of skills, using the distribution of real agentperformance and the set of hypothetical agents with respectivehypothetical agent performances AP_(i), to obtain a total probabilityfor each hypothetical agent of the set of the hypothetical agents. Inembodiments, the calculating the posterior distribution may comprisecalculating for each hypothetical agent, i, in the set of hypotheticalagents, by the one or more computers, for a first skill k and thehypothetical agent performance AP_(i) for the respective hypotheticalagent, i, a probability of the evidence POE_(ik) that the respectivehypothetical agent i would obtain S sales on N calls, that therespective actual agent in that skill k obtained; and calculating, bythe one or more computers, a total probability TP_(i) for thehypothetical agent i, comprising multiplying AP_(i) for the hypotheticalagent by the POE_(ik) for each skill k for the hypothetical agent i.

Block 1130 represents an operation of repeating, by the one or morecomputers, the calculating the posterior distribution steps for multipleof the hypothetical agents in the set of hypothetical agents to obtainthe respective total probabilities for the respective hypotheticalagents.

Block 1140 represents an operation of determining, by the one or morecomputers, one of the hypothetical agents with a better value of totalprobability TP as the actual agent's most probable global performance.In embodiments, the most probable global performance determining stepcomprises selecting one of the hypothetical agents with a best value oftotal probability TP as the actual agent's most probable globalperformance.

In embodiments, the method may be used in combination with any otheragent-caller matching algorithm. For example, the method may furthercomprise the steps of using, by the one or more computers, demographicdata or psychographic data of the agents and demographic data orpsychographic data of the callers in a multi-element pattern matchingalgorithm in a pair-wise fashion for a desired outcome to obtain avaluation for each of multiple of agent-caller pairs, and combining, bythe one or more computers, results of the pattern matching algorithm andthe respective most probable global performances of the respectiveagents to select one of the agent-caller pairs.

Referring to FIG. 12, embodiments of a method process are illustrated tocalculate an actual caller's most probable global propensity. Inembodiments, the method comprises an operation represented by block 1200of determining or obtaining or receiving, by one or more computers, adistribution of real caller propensity from previous real callerpropensity data for a respective caller partition in a set of callerpartitions. In embodiments, the caller propensity is one selected fromthe group of purchase of product or service A or no purchase, purchaseof product or service B or no purchase, purchase of product or service Cor no purchase, save a continuing subscription, revenue per purchase,revenue generating units (RGU) per call, handle time and customersatisfaction, to name a few

Block 1210 represents an operation of determining, by the one or morecomputers, a set of hypothetical callers with respective hypotheticalcaller propensities CP_(i) ranging from a worst propensity to a bestpropensity.

Block 1220 represents an operation of calculating for each of the set ofhypothetical callers, by the one or more computers, a posteriordistribution taking into account actual results of a respective actualcaller in multiple of the caller partitions, using the distribution ofreal caller propensity and the set of hypothetical callers withrespective hypothetical caller propensities CP_(i), to obtain a totalprobability for each hypothetical caller of the set of the respectivehypothetical callers. In embodiments, the partition is based at least inpart on one or more selected from the group of demographic data, areacode, zip code, NPANXX, VTN, geographic area, 800 number, and transfernumber. In embodiments, the calculating the posterior distribution stepmay comprise calculating for each hypothetical caller, i, in the set ofhypothetical callers, by the one or more computers, for a firstpartition and the hypothetical caller propensity CP_(i) for therespective hypothetical caller, i, a probability of the evidencePOE_(ik) that the respective hypothetical caller i would have S sales,that the respective actual caller in that partition k had; andcalculating, by the one or more computers, a total probability TP_(i)for the hypothetical caller i, comprising multiplying CP_(i) for thehypothetical caller by the POE_(ik) for each partition k for thehypothetical caller i.

Block 1230 represents an operation of repeating, by the one or morecomputers, the calculating the posterior distribution steps for multipleof the hypothetical callers in the set of hypothetical callers to obtainthe respective total probabilities for the respective hypotheticalcallers.

Block 1240 represents an operation of determining, by the one or morecomputers, one of the hypothetical callers with a better or best valueof total probability TP as the actual callers's most probable globalpropensity.

As noted previously, in embodiments, the method may be used incombination with any other agent-caller matching algorithm. For example,embodiments may further comprise the steps using, by the one or morecomputers, demographic data or psychographic data of the agents anddemographic data or psychographic data of the callers in a multi-elementpattern matching algorithm in a pair-wise fashion for a desired outcometo obtain a valuation for each of multiple of agent-caller pairs, andcombining, by the one or more computers, results of the pattern matchingalgorithm and the respective most probable global propensities of therespective callers to select one of the agent-caller pairs.

Many of the techniques described here may be implemented in hardware orsoftware, or a combination of the two. Preferably, the techniques areimplemented in computer programs executing on programmable computersthat each includes a processor, a storage medium readable by theprocessor (including volatile and nonvolatile memory and/or storageelements), and suitable input and output devices. Program code isapplied to data entered using an input device to perform the functionsdescribed and to generate output information. The output information isapplied to one or more output devices. Moreover, each program ispreferably implemented in a high level procedural or object-orientedprogramming language to communicate with a computer system. However, theprograms can be implemented in assembly or machine language, if desired.In any case, the language may be a compiled or interpreted language.

Each such computer program is preferably stored on a storage medium ordevice (e.g., CD-ROM, hard disk or magnetic diskette) that is readableby a general or special purpose programmable computer for configuringand operating the computer when the storage medium or device is read bythe computer to perform the procedures described. The system also may beimplemented as a computer-readable storage medium, configured with acomputer program, where the storage medium so configured causes acomputer to operate in a specific and predefined manner.

FIG. 10 illustrates a typical computing system 1000 that may be employedto implement processing functionality in embodiments of the invention.Computing systems of this type may be used in clients and servers, forexample. Those skilled in the relevant art will also recognize how toimplement the invention using other computer systems or architectures.Computing system 1000 may represent, for example, a desktop, laptop ornotebook computer, hand-held computing device (PDA, cell phone, palmtop,etc.), mainframe, server, client, or any other type of special orgeneral purpose computing device as may be desirable or appropriate fora given application or environment. Computing system 1000 can includeone or more processors, such as a processor 1004. Processor 1004 can beimplemented using a general or special purpose processing engine suchas, for example, a microprocessor, microcontroller or other controllogic. In this example, processor 1004 is connected to a bus 1002 orother communication medium.

Computing system 1000 can also include a main memory 1008, such asrandom access memory (RAM) or other dynamic memory, for storinginformation and instructions to be executed by processor 1004. Mainmemory 1008 also may be used for storing temporary variables or otherintermediate information during execution of instructions to be executedby processor 1004. Computing system 1000 may likewise include a readonly memory (“ROM”) or other static storage device coupled to bus 1002for storing static information and instructions for processor 1004.

The computing system 1000 may also include information storage system1010, which may include, for example, a media drive 1012 and a removablestorage interface 1020. The media drive 1012 may include a drive orother mechanism to support fixed or removable storage media, such as ahard disk drive, a floppy disk drive, a magnetic tape drive, an opticaldisk drive, a CD or DVD drive (R or RW), or other removable or fixedmedia drive. Storage media 1018 may include, for example, a hard disk,floppy disk, magnetic tape, optical disk, CD or DVD, or other fixed orremovable medium that is read by and written to by media drive 1012. Asthese examples illustrate, the storage media 1018 may include acomputer-readable storage medium having stored therein particularcomputer software or data.

In alternative embodiments, information storage system 1010 may includeother similar components for allowing computer programs or otherinstructions or data to be loaded into computing system 1000. Suchcomponents may include, for example, a removable storage unit 1022 andan interface 1020, such as a program cartridge and cartridge interface,a removable memory (for example, a flash memory or other removablememory module) and memory slot, and other removable storage units 1022and interfaces 1020 that allow software and data to be transferred fromthe removable storage unit 1018 to computing system 1000.

Computing system 1000 can also include a communications interface 1024.Communications interface 1024 can be used to allow software and data tobe transferred between computing system 1000 and external devices.Examples of communications interface 1024 can include a modem, a networkinterface (such as an Ethernet or other NIC card), a communications port(such as for example, a USB port), a PCMCIA slot and card, etc. Softwareand data transferred via communications interface 1024 are in the formof signals which can be electronic, electromagnetic, optical or othersignals capable of being received by communications interface 1024.These signals are provided to communications interface 1024 via achannel 1028. This channel 1028 may carry signals and may be implementedusing a wireless medium, wire or cable, fiber optics, or othercommunications medium. Some examples of a channel include a phone line,a cellular phone link, an RF link, a network interface, a local or widearea network, and other communications channels.

In this document, the terms “computer program product,”“computer-readable medium” and the like may be used generally to referto physical, tangible media such as, for example, memory 1008, storagemedia 1018, or storage unit 1022. These and other forms ofcomputer-readable media may be involved in storing one or moreinstructions for use by processor 1004, to cause the processor toperform specified operations. Such instructions, generally referred toas “computer program code” (which may be grouped in the form of computerprograms or other groupings), when executed, enable the computing system1000 to perform features or functions of embodiments of the presentinvention. Note that the code may directly cause the processor toperform specified operations, be compiled to do so, and/or be combinedwith other software, hardware, and/or firmware elements (e.g., librariesfor performing standard functions) to do so.

In an embodiment where the elements are implemented using software, thesoftware may be stored in a computer-readable medium and loaded intocomputing system 1000 using, for example, removable storage media 1018,drive 1012 or communications interface 1024. The control logic (in thisexample, software instructions or computer program code), when executedby the processor 1004, causes the processor 1004 to perform thefunctions of the invention as described herein.

It will be appreciated that, for clarity purposes, the above descriptionhas described embodiments of the invention with reference to differentfunctional units and processors. However, it will be apparent that anysuitable distribution of functionality between different functionalunits, processors or domains may be used without detracting from theinvention. For example, functionality illustrated to be performed byseparate processors or controllers may be performed by the sameprocessor or controller. Hence, references to specific functional unitsare only to be seen as references to suitable means for providing thedescribed functionality, rather than indicative of a strict logical orphysical structure or organization.

The above-described embodiments of the present invention are merelymeant to be illustrative and not limiting. Various changes andmodifications may be made 27 without departing from the invention in itsbroader aspects. The appended claims encompass such changes andmodifications within the spirit and scope of the invention.

What is claimed is:
 1. A method, comprising: determining or obtaining orreceiving, by one or more computers, a distribution of real agentperformance from previous real agent performance data for a respectiveskill k in a set of skills; determining, by the one or more computers, aset of hypothetical agents with respective hypothetical agentperformances AP_(i) ranging from a worst performance to a bestperformance for the respective skill k; calculating for each of the setof hypothetical agents, by the one or more computers, a posteriordistribution taking into account actual results of a respective actualagent in each of the set of skills, using the distribution of real agentperformance and the set of hypothetical agents with respectivehypothetical agent performances AP_(i), to obtain a total probabilityfor each hypothetical agent of the set of the hypothetical agents;wherein the calculating the posterior distribution comprises:calculating for each hypothetical agent, i, in the set of hypotheticalagents, by the one or more computers, for a first skill k in the set ofskills and the hypothetical agent performance AP_(i) for the respectivehypothetical agent, i, a probability of evidence POE_(ik) that therespective hypothetical agent i would obtain S sales on N calls, thatthe respective actual agent in that skill k obtained; and calculating,by the one or more computers, a total probability TP_(i) for thehypothetical agent i, comprising multiplying AP_(i) for the hypotheticalagent by the POE_(ik) for each skill k for the hypothetical agent i;determining, by the one or more computers, one of the hypotheticalagents with a better value of total probability TP as the respectiveactual agent's most probable global performance; and connecting, by theone or more computers, the respective actual agent to one of a set ofcallers based at least in part on the respective actual agent's mostprobable performance.
 2. The method as defined in claim 1, wherein theagent performance is one selected from the group of sale or no sale,revenue per call, revenue generating units (RGU) per call, handle timeand customer satisfaction.
 3. The method as defined in claim 1, whereinthe agent skills k comprise two or more selected from the group of salesof product or service A, sales of product or service B, and providingservice advice for a product C.
 4. The method as defined in claim 1,wherein the most probable global performance determining step comprisesselecting one of the hypothetical agents with a best value of totalprobability TP as the actual agent's most probable global performance.5. The method as defined in claim 1, wherein the set of hypotheticalagents comprises at least 10 hypothetical agents.
 6. The method asdefined in claim 1, wherein the set of hypothetical agents comprises atleast 50 hypothetical agents.
 7. The method as defined in claim 1,wherein the set of hypothetical agents comprises at least 100hypothetical agents.
 8. The method as defined in claim 1, wherein thereal agent performance is binomial and distribution of real agentperformance is truncated at least at one end thereof.
 9. The method ofclaim 1, further comprising: using, by the one or more computers,demographic data or psychographic data of the agents and demographicdata or psychographic data of the callers in a multi-element patternmatching algorithm in a pair-wise fashion for a desired outcome toobtain a valuation for each of multiple of agent-caller pairs, andcombining, by the one or more computers, results of the pattern matchingalgorithm and the respective most probable global performances of therespective agents to select one of the agent-caller pairs.
 10. A method,comprising: determining or obtaining or receiving, by one or morecomputers, a distribution of real caller propensity from previous realcaller propensity data for a respective caller partition in a set ofcaller partitions; determining, by the one or more computers, a set ofhypothetical callers with respective hypothetical caller propensitiesCP_(i) ranging from a worst propensity to a best propensity; calculatingfor each of the set of hypothetical callers, by the one or morecomputers, a posterior distribution taking into account actual resultsof a respective actual caller in multiple of the caller partitions,using the distribution of real caller propensity and the set ofhypothetical callers with respective hypothetical caller propensitiesCP_(i), to obtain a total probability for each hypothetical caller ofthe set of the respective hypothetical callers; wherein the calculatingthe posterior distribution comprises: calculating for each hypotheticalcaller, i, in the set of hypothetical callers, by the one or morecomputers, for a first partition in the set of caller partitions and thehypothetical caller propensity CP_(i) for the respective hypotheticalcaller, i, a probability of evidence POE_(ik) that the respectivehypothetical caller i would have S sales, that the respective actualcaller in that partition k had; and calculating, by the one or morecomputers, a total probability TP_(i) for the hypothetical caller i,comprising multiplying CP_(i) for the hypothetical caller by thePOE_(ik) for each partition k for the hypothetical caller i;determining, by the one or more computers, one of the hypotheticalcallers with a better value of total probability TP as the respectiveactual callers's most probable global propensity; and connecting, by theone or more computers, an agent to the respective actual caller based atleast in part on the actual callers's most probable performance.
 11. Themethod as defined in claim 10, wherein the caller propensity is oneselected from the group of purchase of product or service A or nopurchase, purchase of product or service B or no purchase, purchase ofproduct or service C or no purchase, revenue per purchase, revenuegenerating units (RGU) per call, and handle time.
 12. The method asdefined in claim 10, wherein the partition is based at least in part onone or more selected from the group of demographic data, area code, zipcode, NPANXX, VTN, geographic area, 800 number, and transfer number. 13.A system, comprising: one or more computers configured with program codethat, when executed, causes performance of the following steps:determining or obtaining or receiving, by the one or more computers, adistribution of real agent performance from previous real agentperformance data for a respective skill k in a set of skills;determining, by the one or more computers, a set of hypothetical agentswith respective hypothetical agent performances AP_(i) ranging from aworst performance to a best performance for the respective skill k;calculating for each of the set of hypothetical agents, by the one ormore computers, a posterior distribution taking into account actualresults of a respective actual agent in the set of skills, using thedistribution of real agent performance and the set of hypotheticalagents with respective hypothetical agent performances AP_(i), to obtaina total probability for each hypothetical agent of the set of thehypothetical agents; wherein the calculating the posterior distributionstep comprises: calculating for each hypothetical agent, i, in the setof hypothetical agents, by the one or more computers, for a first skillk in the set of skills and the hypothetical agent performance AP_(i) forthe respective hypothetical agent, i, a probability of evidence POE_(ik)that the respective hypothetical agent i would obtain S sales on Ncalls, that the respective actual agent in that skill k obtained; andcalculating, by the one or more computers, a total probability TP_(i)for the hypothetical agent i, comprising multiplying AP_(i) for thehypothetical agent by the POE_(ik) for each skill k for the hypotheticalagent i; determining, by the one or more computers, one of thehypothetical agents with a better value of total probability TP as therespective actual agent's most probable global performance; andconnecting, by the one or more computers, the respective actual agent toone of a set of callers based at least in part on the respective actualagent's most probable performance.
 14. The system as defined in claim13, wherein the agent performance is one selected from the group of saleor no sale, revenue per call, revenue generating units (RGU) per call,and handle time.
 15. The system as defined in claim 13, wherein theagent skills k comprise two or more selected from the group of sales ofproduct or service A, sales of product or service B, and providingservice advice for a product C.
 16. The system as defined in claim 13,wherein the most probable global performance determining step comprisesselecting one of the hypothetical agents with a best value of totalprobability TP as the actual agent's most probable global performance.17. The system as defined in claim 13, wherein the set of hypotheticalagents comprises at least 10 hypothetical agents.
 18. The system asdefined in claim 13, wherein the set of hypothetical agents comprises atleast 50 hypothetical agents.
 19. The system as defined in claim 13,wherein the set of hypothetical agents comprises at least 100hypothetical agents.
 20. The system as defined in claim 13, wherein thereal agent performance is binomial and distribution of real agentperformance is truncated at least at one end thereof.
 21. The system ofclaim 13, further comprising the one or more computers configured withprogram code for performing the steps: using, by the one or morecomputers, demographic data or psychographic data of the agents anddemographic data or psychographic data of the callers in a multi-elementpattern matching algorithm in a pair-wise fashion for a desired outcometo obtain a valuation for each of multiple of agent-caller pairs, andcombining, by the one or more computers, results of the pattern matchingalgorithm and the respective most probable global performances of therespective agents to select one of the agent-caller pairs.
 22. A system,comprising: one or more computers configured with program code that,when executed, causes performance of the following steps: determining orobtaining or receiving, by the one or more computers, a distribution ofreal caller propensity from previous real caller propensity data for arespective caller partition in a set of caller partitions; determining,by the one or more computers, a set of hypothetical callers withrespective hypothetical caller propensities CP_(i) ranging from a worstpropensity to a best propensity; calculating for each of the set ofhypothetical callers, by the one or more computers, a posteriordistribution taking into account actual results of a respective actualcaller in multiple of the caller partitions, using the distribution ofreal caller propensity and the set of hypothetical callers withrespective hypothetical caller propensities CP_(i), to obtain a totalprobability for each hypothetical caller of the set of the respectivehypothetical callers; wherein the calculating the posterior distributionstep comprises: calculating for each hypothetical caller, i, in the setof hypothetical callers, by the one or more computers, for a firstpartition in the set of caller partitions and the hypothetical callerpropensity CP_(i) for the respective hypothetical caller i a probabilityof evidence POE_(ik) that the respective hypothetical caller i wouldhave S sales, that the respective actual caller in that partition k had;and calculating, by the one or more computers, a total probabilityTP_(i) for the hypothetical caller i, comprising multiplying CP_(i) forthe hypothetical caller by the POE_(ik) for each partition k for thehypothetical caller i; determining, by the one or more computers, one ofthe hypothetical callers with a better value of total probability TP asthe respective actual callers's most probable global propensity; andconnecting, by the one or more computers, an agent to the respectiveactual caller based at least in part on the respective actual callers'smost probable performance.
 23. The system as defined in claim 22,wherein the caller propensity is one selected from the group of productor service A or no purchase, purchase of product or service B or nopurchase, purchase of product or service C or no purchase, revenue perpurchase, revenue generating units (RGU) per call, and handle time. 24.The system as defined in claim 22, wherein the partition is based atleast in part on one or more selected from the group of demographicdata, area code, zip code, NPANXX, VTN, geographic area, 800 number, andtransfer number.